package interfaz;

import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import java.awt.Dimension;

public class InterfazCliente implements IVista{

	private JFrame frame;
	private JButton btnModificarDatosCuenta;
	private JButton btnNuevaIncidencia;
	private JButton btnMisIncidencias;
	private JButton btnEvaluacion;
	private JPanel panelFuncionalidad;


	/**
	 * Create the application.
	 */
	public InterfazCliente() {
		initialize();
		
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setMinimumSize(new Dimension(800, 680));
		frame.setBounds(100, 100, 575, 593);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		GridBagLayout gridBagLayout = new GridBagLayout();
		gridBagLayout.columnWidths = new int[]{169, 0, 0};
		gridBagLayout.rowHeights = new int[]{555, 0};
		gridBagLayout.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
		gridBagLayout.rowWeights = new double[]{1.0, Double.MIN_VALUE};
		frame.getContentPane().setLayout(gridBagLayout);
		
		JPanel panelMenu = new JPanel();
		panelMenu.setBackground(Color.WHITE);
		panelMenu.setBorder(new LineBorder(new Color(0, 0, 0)));
		GridBagConstraints gbc_panelMenu = new GridBagConstraints();
		gbc_panelMenu.insets = new Insets(0, 0, 0, 5);
		gbc_panelMenu.fill = GridBagConstraints.BOTH;
		gbc_panelMenu.gridx = 0;
		gbc_panelMenu.gridy = 0;
		frame.getContentPane().add(panelMenu, gbc_panelMenu);
		GridBagLayout gbl_panelMenu = new GridBagLayout();
		gbl_panelMenu.columnWidths = new int[]{0, 0};
		gbl_panelMenu.rowHeights = new int[]{30, 0, 0, 30, 0, 30, 0, 30, 0, 0};
		gbl_panelMenu.columnWeights = new double[]{0.0, Double.MIN_VALUE};
		gbl_panelMenu.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		panelMenu.setLayout(gbl_panelMenu);
		
		btnModificarDatosCuenta = new JButton("Modificar datos cuenta");
		btnModificarDatosCuenta.setActionCommand("modificarDatos");
		GridBagConstraints gbc_btnModificarDatosCuenta = new GridBagConstraints();
		gbc_btnModificarDatosCuenta.fill = GridBagConstraints.HORIZONTAL;
		gbc_btnModificarDatosCuenta.insets = new Insets(0, 0, 5, 0);
		gbc_btnModificarDatosCuenta.gridx = 0;
		gbc_btnModificarDatosCuenta.gridy = 2;
		panelMenu.add(btnModificarDatosCuenta, gbc_btnModificarDatosCuenta);
		
		btnNuevaIncidencia = new JButton("Nueva Incidencia");
		GridBagConstraints gbc_btnNuevaIncidencia = new GridBagConstraints();
		gbc_btnNuevaIncidencia.fill = GridBagConstraints.HORIZONTAL;
		gbc_btnNuevaIncidencia.insets = new Insets(0, 0, 5, 0);
		gbc_btnNuevaIncidencia.gridx = 0;
		gbc_btnNuevaIncidencia.gridy = 4;
		panelMenu.add(btnNuevaIncidencia, gbc_btnNuevaIncidencia);
		
		btnMisIncidencias = new JButton("Mis incidencias");
		GridBagConstraints gbc_btnMisIncidencias = new GridBagConstraints();
		gbc_btnMisIncidencias.fill = GridBagConstraints.HORIZONTAL;
		gbc_btnMisIncidencias.insets = new Insets(0, 0, 5, 0);
		gbc_btnMisIncidencias.gridx = 0;
		gbc_btnMisIncidencias.gridy = 6;
		panelMenu.add(btnMisIncidencias, gbc_btnMisIncidencias);
		
		btnEvaluacion = new JButton("Evaluaci\u00F3n de servicio");
		btnEvaluacion.setActionCommand("EvaluacionServicio");
		btnEvaluacion.setIcon(null);
		GridBagConstraints gbc_btnEvaluacion = new GridBagConstraints();
		gbc_btnEvaluacion.fill = GridBagConstraints.HORIZONTAL;
		gbc_btnEvaluacion.gridx = 0;
		gbc_btnEvaluacion.gridy = 8;
		panelMenu.add(btnEvaluacion, gbc_btnEvaluacion);
		
		panelFuncionalidad = new JPanel();
		panelFuncionalidad.setBorder(new LineBorder(new Color(0, 0, 0)));
		panelFuncionalidad.setBackground(Color.WHITE);
		GridBagConstraints gbc_panelFuncionalidad = new GridBagConstraints();
		gbc_panelFuncionalidad.fill = GridBagConstraints.BOTH;
		gbc_panelFuncionalidad.gridx = 1;
		gbc_panelFuncionalidad.gridy = 0;
		frame.getContentPane().add(panelFuncionalidad, gbc_panelFuncionalidad);
	}

	@Override
	public void update() {
		this.frame.revalidate();
		this.frame.repaint();
		
	}

	@Override
	public void SetVisible(boolean visible) {
		frame.setVisible(visible);
		
	}

	@Override
	public void registerListener(ActionListener listener) {
		btnModificarDatosCuenta.addActionListener(listener);
		btnNuevaIncidencia.addActionListener(listener);
		btnMisIncidencias.addActionListener(listener);
		btnEvaluacion.addActionListener(listener);
		
	}
	
	public void setPanelFuncionalidad(JPanel panelFuncionalidad) {
		frame.getContentPane().remove(this.panelFuncionalidad);
		
		panelFuncionalidad.setBorder(new LineBorder(new Color(0, 0, 0)));
		GridBagConstraints gbc_panelFuncionalidad = new GridBagConstraints();
		gbc_panelFuncionalidad.fill = GridBagConstraints.BOTH;
		gbc_panelFuncionalidad.gridx = 1;
		gbc_panelFuncionalidad.gridy = 0;
		frame.getContentPane().add(panelFuncionalidad, gbc_panelFuncionalidad);
		this.panelFuncionalidad= panelFuncionalidad;
	}
}
